A datacenter may include one or more superclusters, each of which may include machines capable of data storage and data processing. Typically, each supercluster spans a number of racks (or physical clusters) within the datacenter. In some implementations, one or more superclusters can be used in a Content Delivery Network (CDN).
A CDN is a geographically distributed network of servers (each of which is referred to as a CDN node) for facilitating an origin server to distribute content data of the origin server to clients that consume the content data. To distribute to clients that are remote to the origin server, a CDN node in geographical proximity to the clients can provide the content data to those clients on behalf of the origin server. In particular, the CDN node can replicate and cache the content data of the origin server and provide the replicated and cached content data to the clients. Some CDN nodes are referred to as “edge nodes” given the proximity of those CDN nodes to the clients.
A supercluster can be used to implement one or more nodes of a CDN. For example, a node can be implemented by a machine of a supercluster. A supercluster can be used to implement edge nodes of a CDN. In that regard, each machine in the supercluster is cache-responsible for at least some portion (e.g., at least one slice) of a total library of content data. The total library is defined by a set of properties that are bound to one or more superclusters. As such, the slices making up the total library are allocated to machines in one or more superclusters.
Machines in a supercluster can become unavailable for various reasons, including predetermined/scheduled unavailability (e.g., maintenance, and the like) and unexpected/sudden unavailability (e.g., non-responsiveness, slow processing, power interruption, and the like). If a primary machine storing a given slice is unavailable, a secondary machine storing the slice can be selected to provide the slice to a client. A consistent hashing algorithm is used to select which slice a given resource/machine is assigned. The consistent hashing algorithm iterates over a list of machines. The order of the machines on the list can be determined based on a source key (such as a canonicalized version of the requested Uniform Resource Locator (URL) in a CDN). In this manner, responsive to a machine being determined to be unavailable, the content data for which the unavailable machine is responsible may be spread over a number (ideally all) of the other machines in the supercluster, thus avoiding hotspots. A hotspot refers to one or more popular slices being stored and provided by a given machine of the supercluster, such that the machine is burdened with a significant amount of traffic and processing. If a sufficient number of machines in a given supercluster become offline, remaining machines can be overwhelmed by additional load due to unavailable resources. A conventional datacenter offers inadequate communications among machines or groups of machines in relation to conveying machine status and availability information.